package sagan.support.github;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.util.StreamUtils;
public class DownloadConverter implements HttpMessageConverter<byte[]> {
public List<MediaType> getSupportedMediaTypes() {
return Collections.singletonList(new MediaType("application", "vnd.github.v3.raw"));
}
@Override
public byte[] read(Class<? extends byte[]> clazz, HttpInputMessage inputMessage) throws IOException,
HttpMessageNotReadableException {
return StreamUtils.copyToByteArray(inputMessage.getBody());
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return byte[].class.equals(clazz);
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return false;
}
@Override
public void write(byte[] download, MediaType contentType, HttpOutputMessage outputMessage) throws IOException,
HttpMessageNotWritableException {
throw new UnsupportedOperationException("can't write");
}
}